package org.example.sword2offer.primary;

import java.util.HashMap;
import java.util.Map;

/**
 * @author: lynn
 * @Descript: 数组中重复的数字
 * 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的，但不知道有几个数字是重复的。
 * 也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如，如果输入长度为7的数组{2,3,1,0,2,5,3}，
 * 那么对应的输出是第一个重复的数字2。
 *
 * @date: 2021/3/ 22 20:52
 * @version: 1.0
 */
public class Q50_FindDuplicateNum {
    public static void main(String[] args) {
        int[] numbers={2,1,3,1,4};
        System.out.println(duplicate(numbers));
    }

    public static  int duplicate (int[] numbers) {


        Map<Integer,Object> duplicateMap=new HashMap<>();
        int targetNum=0;
        for (int i = 0; i <numbers.length ; i++) {
           if (duplicateMap.get(numbers[i])!=null){
               targetNum=numbers[i];
               break;
           }else {
               duplicateMap.put(numbers[i],1);
           }
        }
        return targetNum;
    }
}
